﻿#include <QCoreApplication>

#include "myinifile.h"
#include "qinifile.h"

#include <QLibrary>

// 这个和用啥平台编译有关系，windows 下 MSVC 就是 fromLocal8Bit, MinGW 就是 fromUtf8
#ifdef _MSC_VER
#define _TR(x) QString::fromLocal8Bit(x)
#else
#define _TR(x) QString::fromUtf8(x)
#endif



void Test_QIniFile_Class()
{
    const char* iniPath = "C:\\Work\\qini.ini";

#if 1
    QIniFile inifile(iniPath);
#else
    QIniFile inifile;
    inifile.LoadFile(iniPath);
#endif

    inifile.SetValue(_TR("中文段名"), _TR("中文键名0"), _TR("中文的值0"));
    inifile.SetValue(_TR("中文段名"), _TR("中文键名1"), _TR("中文的值1"));
    inifile.SetValue(_TR("中文段名"), _TR("中文键名2"), _TR("中文的值2"));
    inifile.SetValue(_TR("中文段名"), _TR("中文键名3"), _TR("中文的值3"));
    inifile.SetValue(_TR("中文段名11"), _TR("中文键名abc1"), _TR("中文的值abc"));
    inifile.SetValue(_TR("中文段名11"), _TR("中文键名abc2"), _TR("def"));
    inifile.SetValue(_TR("中文段名11"), _TR("中文键名abc3"), _TR("中文中文啊"));

    QVariant qval;
    inifile.GetValue(_TR("中文段名11"), _TR("中文键名abc3"), qval);
}

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);


    Test_QIniFile_Class();


//    QMyIniFile ini;
//    ini.Open(QString::fromLocal8Bit("C:\\Work\\qini.ini"));
//    ini.GetValue(_TR("配置信息"), _TR("配置项目1"), _TR("无值"));
//    ini.SetValue(_TR("中文段名"), _TR("中文键名"), _TR("中文的值")); // 失败！！不改源码不行

    return 0;
}
